package com.igeek.javase.ch05.aList;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/*
 *@author wangpeng
 *2023/7/17 10:45
 *@description TODO
 */
/*
* 1.List作业
模拟登陆，编写用户类，测试类。
  1>.给集合中存储5个用户对象。
  2>.从控制台输入用户名和密码，和集合中的对象信息进行比较，
  相同表示成功，不同表示失败。
  3>.有三次输入机会
*
 */

public class TestUserLogin {
    public static void main(String[] args) {
        List<User> userList = new ArrayList<>(); //创建一个存储5个用户对象的集合。
        //添加五个用户对象。
        userList.add(new User("user1", "111"));
        userList.add(new User("user2", "222"));
        userList.add(new User("user3", "333"));
        userList.add(new User("user4", "444"));
        userList.add(new User("user5", "555"));
        for(User user:userList){
            System.out.println(user.toString());
        }
        Scanner scanner = new Scanner(System.in);
        int count = 0; //记录已经输入的用户名和密码的次数。初始值为0。
        System.out.println("你有三次机会输入！");
        while (count < 3) { //循环三次，每次输入用户名和密码进行比较。如果三次都失败，则退出程序。
            System.out.println("请输入用户名：");
            String inputUsername = scanner.nextLine();
            System.out.println("请输入密码：");
            String inputPassword = scanner.nextLine();
            count++;
            for (User user : userList) {
                //遍历用户列表，查找匹配的用户名和密码。如果找到匹配的用户名和密码，则登录成功。否则，提示用户重新输入。如果已经尝试了两次，则退出程序。
                if (user.getUsername().equals(inputUsername) && user.getPassword().equals(inputPassword)) {
                    //如果找到匹配的用户名和密码，则登录成功。将标记设置为true。并跳出循环。
                    System.out.println("登录成功！");
                    break;
                } else if (count == 1) {
                    System.out.println("登录失败，你还有两次输入机会！");
                    break;
                } else if (count == 2) {
                    System.out.println("登录失败，你还有一次输入机会！");
                    break;
                }
            }
            if(count == 3){
                System.out.println("登录失败！你的输入次数已满三次！");
            }
        }
    }
}

